import UIKit

extension QKC where AA == UIEdgeInsets {
}

extension QKC where AA == UIEdgeInsets {
    public func encode_qk_f(to encoder: Encoder) -> QKC<AA,YY,ZZ, Encoder>{
		 self +^ (try?self.value.encode(to:encoder)) +^ encoder
	}

}

@available(iOS 11.0, tvOS 11.0, watchOS 4.0, *)
extension QKC where AA == NSDirectionalEdgeInsets {
}

@available(iOS 11.0, tvOS 11.0, watchOS 4.0, *)
extension QKC where AA == NSDirectionalEdgeInsets {
    public func encode_qk_f(to encoder: Encoder) -> QKC<AA,YY,ZZ, Encoder>{
		 self +^ (try?self.value.encode(to:encoder)) +^ encoder
	}

}

extension QKC where AA == UIOffset {
}

extension QKC where AA == UIOffset {
    public func encode_qk_f(to encoder: Encoder) -> QKC<AA,YY,ZZ, Encoder>{
		 self +^ (try?self.value.encode(to:encoder)) +^ encoder
	}

}

extension QKC where AA == CGRect {
    
    

}

extension QKC where AA :NSValue {
    open func cgPointValue_qk_g() -> QKC<AA,YY,ZZ, CGPoint >{
		 self +^ self.value.cgPointValue
	}

    open func cgVectorValue_qk_g() -> QKC<AA,YY,ZZ, CGVector >{
		 self +^ self.value.cgVectorValue
	}

    open func cgSizeValue_qk_g() -> QKC<AA,YY,ZZ, CGSize >{
		 self +^ self.value.cgSizeValue
	}

    open func cgRectValue_qk_g() -> QKC<AA,YY,ZZ, CGRect >{
		 self +^ self.value.cgRectValue
	}

    open func cgAffineTransformValue_qk_g() -> QKC<AA,YY,ZZ, CGAffineTransform >{
		 self +^ self.value.cgAffineTransformValue
	}

    open func uiEdgeInsetsValue_qk_g() -> QKC<AA,YY,ZZ, UIEdgeInsets >{
		 self +^ self.value.uiEdgeInsetsValue
	}

    @available(iOS 11.0, *)
    open func directionalEdgeInsetsValue_qk_g() -> QKC<AA,YY,ZZ, NSDirectionalEdgeInsets >{
		 self +^ self.value.directionalEdgeInsetsValue
	}

    @available(iOS 5.0, *)
    open func uiOffsetValue_qk_g() -> QKC<AA,YY,ZZ, UIOffset >{
		 self +^ self.value.uiOffsetValue
	}

}

extension QKC where AA :NSCoder {
    open func encode_qk_f(_ point: CGPoint, forKey key: String) -> QKC<AA,YY,ZZ, CGPoint>{
		 self +^ self.value.encode(point, forKey:key) +^ point
	}

    open func encode_qk_f(_ vector: CGVector, forKey key: String) -> QKC<AA,YY,ZZ, CGVector>{
		 self +^ self.value.encode(vector, forKey:key) +^ vector
	}

    open func encode_qk_f(_ size: CGSize, forKey key: String) -> QKC<AA,YY,ZZ, CGSize>{
		 self +^ self.value.encode(size, forKey:key) +^ size
	}

    open func encode_qk_f(_ rect: CGRect, forKey key: String) -> QKC<AA,YY,ZZ, CGRect>{
		 self +^ self.value.encode(rect, forKey:key) +^ rect
	}

    open func encode_qk_f(_ transform: CGAffineTransform, forKey key: String) -> QKC<AA,YY,ZZ, CGAffineTransform>{
		 self +^ self.value.encode(transform, forKey:key) +^ transform
	}

    open func encode_qk_f(_ insets: UIEdgeInsets, forKey key: String) -> QKC<AA,YY,ZZ, UIEdgeInsets>{
		 self +^ self.value.encode(insets, forKey:key) +^ insets
	}

    @available(iOS 11.0, *)
    open func encode_qk_f(_ insets: NSDirectionalEdgeInsets, forKey key: String) -> QKC<AA,YY,ZZ, NSDirectionalEdgeInsets>{
		 self +^ self.value.encode(insets, forKey:key) +^ insets
	}

    @available(iOS 5.0, *)
    open func encode_qk_f(_ offset: UIOffset, forKey key: String) -> QKC<AA,YY,ZZ, UIOffset>{
		 self +^ self.value.encode(offset, forKey:key) +^ offset
	}

    open func decodeCGPoint_qk_f(forKey key: String) -> QKC<AA,YY,ZZ,CGPoint>{
		 self +^ self.value.decodeCGPoint(forKey:key)
	}

    open func decodeCGVector_qk_f(forKey key: String) -> QKC<AA,YY,ZZ,CGVector>{
		 self +^ self.value.decodeCGVector(forKey:key)
	}

    open func decodeCGSize_qk_f(forKey key: String) -> QKC<AA,YY,ZZ,CGSize>{
		 self +^ self.value.decodeCGSize(forKey:key)
	}

    open func decodeCGRect_qk_f(forKey key: String) -> QKC<AA,YY,ZZ,CGRect>{
		 self +^ self.value.decodeCGRect(forKey:key)
	}

    open func decodeCGAffineTransform_qk_f(forKey key: String) -> QKC<AA,YY,ZZ,CGAffineTransform>{
		 self +^ self.value.decodeCGAffineTransform(forKey:key)
	}

    open func decodeUIEdgeInsets_qk_f(forKey key: String) -> QKC<AA,YY,ZZ,UIEdgeInsets>{
		 self +^ self.value.decodeUIEdgeInsets(forKey:key)
	}

    @available(iOS 11.0, *)
    open func decodeDirectionalEdgeInsets_qk_f(forKey key: String) -> QKC<AA,YY,ZZ,NSDirectionalEdgeInsets>{
		 self +^ self.value.decodeDirectionalEdgeInsets(forKey:key)
	}

    @available(iOS 5.0, *)
    open func decodeUIOffset_qk_f(forKey key: String) -> QKC<AA,YY,ZZ,UIOffset>{
		 self +^ self.value.decodeUIOffset(forKey:key)
	}

}

